package com.dd.cloud.user.mapper.aicms;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dd.cloud.user.entity.aicms.AicmsDiagnosticResult;
import com.dd.cloud.user.req.aicms.AicmsDiagnosticResultSystemPageReq;
import com.dd.cloud.user.req.aicms.DiagnosticRecordMedReq;
import com.dd.cloud.user.req.aicms.DiagnosticRecordReq;
import com.dd.cloud.user.req.aicms.PatientRecordReq;
import com.dd.cloud.user.res.aicms.*;
import org.apache.ibatis.annotations.Param;

/**
 * <p>
 * 诊断结果表 Mapper 接口
 * </p>
 *
 * @author czg
 * @since 2022-04-27
 */
public interface AicmsDiagnosticResultMapper extends BaseMapper<AicmsDiagnosticResult> {

    /**
     * 多条件查询诊断记录
     *
     * @param iPage
     * @param req
     * @return
     */
    IPage<AicmsDiagnosticResultPageRes> queryDiagnosticsTerms(IPage iPage, @Param("req") DiagnosticRecordReq req);

    /**
     * 查询就诊人诊疗记录的初诊复诊
     *
     * @param page
     * @param req
     * @return
     */
    Page<AicmsDiagnosticMedPageRes> queryDiagnosticsMedTerms(Page page, @Param("req") DiagnosticRecordMedReq req);

    /**
     * 多条件查询患者历史诊断
     *
     * @param page
     * @param req
     * @return
     */
    Page<AicmsDiagnosticMedPageRes> queryDiagnosticsByMed(Page page, @Param("req") PatientRecordReq req);

    /**
     * 查询诊断结果详情
     *
     * @param diagnosticId
     * @return
     */
    AicmsDiagnosticResultDetail queryDiagnosticsMechan(@Param("diagnosticId") Integer diagnosticId);

    /**
     * 查询诊断记录 运营后台无效订单列表
     *
     * @param iPage
     * @param req
     * @return
     */
    IPage<AicmsDiagnosticResultSystemPageRes> queryAicmsDiagnosticResultSystemPage(IPage<?> iPage, @Param("req") AicmsDiagnosticResultSystemPageReq req);

    /**
     * 查询诊断记录详情 运营后台无效订单列表
     *
     * @param diagnosticId
     * @return
     */
    AicmsDiagnosticResultSystemDetailRes queryAicmsDiagnosticResultSystemDetailRes(@Param("diagnosticId") Integer diagnosticId);
}
